#include <iostream>
#include <cstring>

using namespace std;
//思路
// 使用v数组，对已经搜索过的字母标记为True，没有搜索过的字母标记为False，在搜索结束后，标记为False
// 判断n是否为长度len，也就是已经全部排列完成，如果排列完成，则输出，否则继续找到下一个字母
char s[10],a[10];
bool v[10] = {false};
int s_len;
void f(int n) {
    for(int i = 0;i < s_len;i++) {
        if(v[i] == false) {
            v[i] = true;
            a[n] = s[i];
            if (n == s_len - 1) {
                cout << a << endl;
            }else {
                f(n+1);
            }
            v[i] = false;
        }
    }
}

int main() {
    cin >> s;
    s_len = strlen(s);
    f(0);
    return 0;
}